package com.niiwoo.activity.stage.service.project;

import com.niiwoo.activity.stage.dto.request.project.ProjectRaiseRateCreditorReqDTO;
import com.niiwoo.activity.stage.dto.request.project.ProjectRaiseRateInvestReqDTO;
import com.niiwoo.activity.stage.dto.request.project.ProjectRaiseRateRepayReqDTO;

import java.util.List;

/**
 * 标的加息dubbo Service
 * @author zzl
 * @create 2018-08-07 15:59
 **/
public interface ProjectRaiseRateDubboService {

    /**
     * 创建【标的加息】的加息计划（满标时调用）
     *
     * @param requestDTO
     *
     * @return
     */
    void createProjectRaiseRatePlan(ProjectRaiseRateInvestReqDTO requestDTO);

    /**
     * 【标的加息】返现，还款时调用
     *
     * @param requestDTO
     *
     * @return
     */
    void repayProjectRaiseRate(ProjectRaiseRateRepayReqDTO requestDTO);

    /**
     * 【标的加息】返现，还款时调用-批量
     *
     * @param requestDTOList
     *
     * @return
     */
    void repayProjectRaiseRateBatch(List<ProjectRaiseRateRepayReqDTO> requestDTOList);

    /**
     * 【标的加息】债转调用
     * 根据当期已有天数，计算加息金额。并在债转的时候发放
     * @param projectRaiseRateCreditorReqDTO
     */
    default void creditorProjectRaiseRate(ProjectRaiseRateCreditorReqDTO projectRaiseRateCreditorReqDTO){
        throw new UnsupportedOperationException("unimplemented");
    }
}
